home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / lib.exe / EXTDOS.BIB < prev    next >
Text File  |  1992-02-13  |  3KB  |  245 lines

  1. #IF !LIB4A86
  2. #ELSE
  3. #IF !INTERN_LIB4A86_S
  4. INTERN_LIB4A86_S EQU 01
  5. JMP START
  6. #ENDIF
  7. #ENDIF
  8. GETDRIVEART:
  9. PUSH ES,BX
  10. PUSH AX
  11. GETDIBADRESS
  12. POP AX
  13. MOV AH,ES:DIB_LOGICALLWS
  14. LES BX,ES:DIB_DRIVETABLE
  15. DEC AL
  16. CMP AH,AL
  17. JB >L8
  18. PUSH CX,BX,DX,AX
  19. MOV AH,030H
  20. INT 021H
  21. CMP AL,03H
  22. POP AX
  23. MOV CL,DRIVETSIZE33
  24. IF A MOV CL,DRIVETSIZE4XX
  25. XOR CH,CH
  26. XOR AH,AH
  27. MUL CX
  28. POP DX
  29. POP BX
  30. ADD BX,AX
  31. POP CX
  32. MOV AX,ES:DRIVE_USED
  33. CLC
  34. L8:
  35. POP BX,ES
  36. RET
  37. GETHANDLENAME:
  38. PUSH BX,CX,SI,DS
  39. PUSH DI,ES
  40. CLD
  41. MOV SI,BX
  42. GETPSPADRESS
  43. MOV AL,0FFH
  44. CMP SI,ES:PSP_MAXHANDLES
  45. JA >L8
  46. LDS BX,ES:PSP_HANDLETABADR
  47. MOV AL,DS:[BX+SI]
  48. CMP AL,0FFH
  49. JE >L8
  50. XOR AH,AH
  51. PUSH AX
  52. GETFIRSTSDLTABLE
  53. POP AX
  54. L0:
  55. CMP CX,AX
  56. JA >L1
  57. SUB AX,CX
  58. GETNEXTSDLTABLE
  59. JNZ L0
  60. MOV AL,0FEH
  61. JMP >L8
  62. L1:
  63. PUSH AX,CX,BX
  64. MOV AH,030H
  65. INT 021H
  66. CMP AL,03
  67. POP BX,CX,AX
  68. MOV CL,035H
  69. IF A MOV CL,03BH
  70. MUL CL
  71. ADD AX,TYPE SDLHEADER
  72. ADD BX,AX
  73. CMP ES:SDLENTRY3_USED,0
  74. JE >L8
  75. ADD BX,OFFSET SDLENTRY3_NAME
  76. MOV DS,ES
  77. MOV SI,BX
  78. POP ES,DI
  79. PUSH DI,ES
  80. MOV CX,0BH
  81. REP MOVSB
  82. CLC
  83. JMP >L9
  84. L8:
  85. STC
  86. L9:
  87. POP ES,DI
  88. POP DS,SI,CX,BX
  89. RET
  90. SEARCHCHARDEVICE:
  91. PUSH DI
  92. CLD
  93. GETFIRSTDEVICEDRIVER
  94. XOR CX,CX
  95. L0:
  96. INC CX
  97. MOV AX,ES:DEVICE_ATTR
  98. TEST AX,08000H
  99. JZ >L1
  100. MOV DI,BX
  101. ADD DI,OFFSET DEVICE_NAME
  102. PUSH SI
  103. PUSH CX
  104. MOV CX,4
  105. REPE CMPSW
  106. POP CX
  107. POP SI
  108. JE >L9
  109. L1:
  110. GETNEXTDEVICEDRIVER
  111. IF NE JMP L0
  112. L8:
  113. STC
  114. L9:
  115. POP DI
  116. RET
  117. STANDARDIO?:
  118. PUSH ES,BX
  119. GETPSPADRESS
  120. LES BX,ES:PSP_HANDLETABADR
  121. MOV AX,ES:[BX]
  122. POP BX,ES
  123. RET
  124. GETMAXFILE:
  125. PUSH ES,BX
  126. GETPSPADRESS
  127. MOV CX,ES:PSP_MAXHANDLES
  128. LES BX, ES:PSP_HANDLETABADR
  129. PUSH CX
  130. XOR AX,AX
  131. L0:
  132. CMP ES:B[BX],0FFH
  133. IF NE INC AL
  134. INC BX
  135. LOOP L0
  136. POP CX
  137. POP BX,ES
  138. RET
  139. SETMAXFILE:
  140. TEST BX,01
  141. IF Z INC BX
  142. MOV AH,067H
  143. INT 021H
  144. RET
  145. COUNTBUFFERS:
  146. PUSH ES,BX
  147. GETDIBADRESS
  148. PUSH CX,BX
  149. MOV AH,030H
  150. INT 021H
  151. POP BX,CX
  152. CMP AL,03H
  153. JBE >L1
  154. MOV AX,ES:DIB_BUFFERSPARM1
  155. JMP >L9
  156. L1:
  157. LES BX, ES:DIB_FIRSTBUFFER
  158. XOR AX,AX
  159. L0:
  160. INC AX
  161. GETNEXTBUFFER3
  162. JNZ L0
  163. L9:
  164. POP BX,ES
  165. RET
  166. COUNTSDL:
  167. PUSH ES,BX,DI
  168. MOV AX,01216H
  169. MOV BX,0
  170. INT 02FH
  171. PUSH DI
  172. MOV AX,01216H
  173. MOV BX,01
  174. INT 02FH
  175. POP AX
  176. SUB DI,AX
  177. GETDIBADRESS
  178. LES BX,ES:DIB_SDL
  179. XOR CX,CX
  180. XOR AX,AX
  181. L0:
  182. CMP BX,0FFFFH
  183. JE >L9
  184. PUSH W ES:SDLHEADER_NEXT
  185. PUSH W ES:SDLHEADER_NEXT+2
  186. ADD CX,ES:SDLENTRYS
  187. PUSH CX
  188. MOV CX,ES:SDLENTRYS
  189. ADD BX,TYPE SDLHEADER
  190. L01:
  191. CMP W ES:SDLENTRY3_USED,0
  192. IF NE INC AX
  193. ADD BX,DI
  194. LOOP L01
  195. POP CX
  196. POP ES
  197. POP BX
  198. JMP L0
  199. L9:
  200. POP DI,BX,ES
  201. RET
  202. COUNTFCBS:
  203. PUSH ES,BX
  204. GETFIRSTFCBSTABLE
  205. XOR CX,CX
  206. XOR AX,AX
  207. L0:
  208. ADD CX,ES:[BX+4]
  209. ADD AX,ES:[BX+6]
  210. GETNEXTFCBSTABLE
  211. JNZ L0
  212. L9:
  213. POP BX,ES
  214. RET
  215. #IF !INTERN_CMARK0
  216. INTERN_CMARK0 EQU 01H
  217. INTERN_CMARK1:
  218. PUSH BP
  219. MOV BP,SP
  220. MOV BX,06H
  221. SUB CH,[BP+SI]
  222. SUB AH,[BX+SI]
  223. DEC SP
  224. DEC CX
  225. INC DX
  226. XOR AL,041H
  227. CMP B[02820H],DH
  228. INC BX
  229. SUB W[BX+SI],SP
  230. INC DX
  231. CS AND B[BP+DI+043H],DL
  232. DEC AX
  233. INC BP
  234. DEC BP
  235. DEC BP
  236. INC BP
  237. PUSH DX
  238. AND B[BP+SI],CH
  239. SUB CH,[BP+SI]
  240. POP DX
  241. MOV SP,BP
  242. POP BP
  243. RET
  244. #ENDIF
  245.